<template>
  <el-input
    clearable
    :type="type"
    :rows="rows"
    :autosize="autosize"
    :disabled="disabled"
    v-model.trim="state"
    placeholder="请输入"
    class="width_100 height_auto"
  />
</template>

<script setup lang="ts">
  /**
   * @props
   */

  const props = defineProps({
    // 值
    value: {
      type: String,
      default: '',
    },
    // 类型
    type: {
      type: String,
      default: 'text', // 'text' | 'textarea' | 'password' | 'button' | 'checkbox' | 'file' | 'number' | 'radio' | .
    },
    // 禁用
    disabled: {
      type: Boolean,
      default: false,
    },
    // 输入框行数，仅 type 为 'textarea' 时有效
    rows: {
      type: Number,
      default: 1,
    },
    // textarea 高度是否自适应，仅 type 为 'textarea' 时生效。
    autosize: {
      type: Object,
      default: { minRows: 1, maxRows: 2 },
    },
  })

  const state = toRef(props.value)
</script>

<style scoped></style>
